home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / ftp_setproctitle.nasl < prev    next >
Text File  |  2005-01-14  |  2KB  |  72 lines

  1. #
  2. # This script was written by Renaud Deraison <deraison@cvs.nessus.org>
  3. #
  4. #
  5. # See the Nessus Scripts License for details
  6. #
  7. # Yes, this is an old flaw
  8. #
  9.  
  10. if(description)
  11. {
  12.  script_id(11391);
  13.  script_bugtraq_id(1425, 1438);
  14.  script_version ("$Revision: 1.5 $");
  15.  script_cve_id("CAN-2000-0574");
  16.  name["english"] = "BSD ftpd setproctitle() format string";
  17.  
  18.  script_name(english:name["english"]);
  19.  
  20.  desc["english"] = "
  21. The remote FTP server misuses the function setproctitle() and
  22. may allow an attacker to gain a root shell on this host by 
  23. logging in as 'anonymous' and providing a carefully crafted 
  24. format string as its email address.
  25.  
  26. Solution : upgrade your FTP server.
  27. Risk factor : High";
  28.  
  29.  script_description(english:desc["english"]);
  30.  
  31.  
  32.  script_summary(english:"Checks if the remote ftpd is vulnerable to format string attacks");
  33.  script_category(ACT_DESTRUCTIVE_ATTACK);
  34.  script_family(english:"FTP");
  35.  
  36.  script_copyright(english:"This script is Copyright (C) 2003 Renaud Deraison",
  37.            francais:"Ce script est Copyright (C) 2003 Renaud Deraison");
  38.  
  39.  script_dependencie("find_service.nes", "ftp_anonymous.nasl");
  40.  script_require_keys("ftp/anonymous");
  41.  script_require_ports("Services/ftp", 21);
  42.  exit(0);
  43. }
  44.  
  45. #
  46. # The script code starts here :
  47. #
  48. include("ftp_func.inc");
  49.  
  50. port = get_kb_item("Services/ftp");
  51. if(!port)port = 21;
  52. if (! get_port_state(port)) exit(0);
  53.  
  54.  
  55. # Connect to the FTP server
  56. soc = open_sock_tcp(port);
  57. if(soc)
  58. {
  59.  banner = ftp_recv_line(socket:soc);
  60.  if(!banner)exit(0);
  61.  send(socket:soc, data:string("USER anonymous\r\n"));
  62.  r = ftp_recv_line(socket:soc);
  63.  if(!ereg(pattern:"^331", string:r))exit(0);
  64.  send(socket:soc, data:string("PASS %n%n%n%n%n%n%n\r\n"));
  65.  r = ftp_recv_line(socket:soc);
  66.  if(!r || !ereg(pattern:"^230",  string:r))exit(0);
  67.  send(socket:soc, data:string("HELP\r\n"));
  68.  r = recv_line(socket:soc, length:4096);
  69.  if(!r)security_hole(port);
  70. }
  71.